草庐IT

java - 将字节数组转换为base64字符串java

全部标签

ruby-on-rails - Ruby 2.0.0 字符串#Match ArgumentError : invalid byte sequence in UTF-8

我经常看到这种情况,但还没有想出一个优雅的解决方案。如果用户输入包含无效的字节序列,我需要能够让它不引发异常。例如:#@raw_responsecomesfromuserandcontainsinvalidUTF-8#forexample:@raw_response="\xBF"regex.match(@raw_response)ArgumentError:invalidbytesequenceinUTF-8已经问了很多类似的问题,结果似乎是对字符串进行编码或强制编码。然而,这些都不适合我:regex.match(@raw_response.force_encoding("UTF-8"

ruby - 将嵌套哈希转换为平面哈希

这道题是thisquestion的逆题.给定一个嵌套的哈希{:a=>{:b=>{:c=>1,:d=>2},:e=>3,},:f=>4,}将它转换成平面散列的最佳方法是什么{[:a,:b,:c]=>1,[:a,:b,:d]=>2,[:a,:e]=>3,[:f]=>4,} 最佳答案 另一种方式:defflat_hash(h,f=[],g={})returng.update({f=>h})unlessh.is_a?Hashh.each{|k,r|flat_hash(r,f+[k],g)}gendh={:a=>{:b=>{:c=>1,:d=

Ruby 转义 ARGV 参数或字符串作为 shell 命令的参数

好吧,这让我发疯:`ls#{"/media/music/MilesDavis"}`由于“Miles”和“Davis”之间的空格而失败假设我编写了一个ruby​​脚本,用户将文件路径作为参数传递。我如何转义它并提供给shell-out命令。是的,是的,我知道,应该避免掏空。但这是一个人为的例子,我仍然需要这个。我会做system("ls",ARGV[0]),但它不会将ls的标准输出输出作为字符串返回,这正是反引号擅长的地方。如何转义你在shellout中插入的任何内容? 最佳答案 使用require'shellwords'和Shell

ruby - 将字符串截断为前 n 个单词

将字符串截断为前n个单词的最佳方法是什么? 最佳答案 n=3str="yourlonglonginputstringorwhatever"str.split[0...n].join('')=>"yourlonglong"str.split[0...n]#notethattherearethreedots,whichexcludesn=>["your","long","long"] 关于ruby-将字符串截断为前n个单词,我们在StackOverflow上找到一个类似的问题:

ruby - 将对象数组转换为以字段为键的哈希

我有一个对象数组:[#,#,...]我想将其转换为以id为键,以对象为值的散列。现在我是这样做的,但我知道有更好的方法:users=User.all.reduce({})do|hash,user|hash[user.id]=userhashend预期输出:{1=>#,2=>#,...} 最佳答案 users_by_id=User.all.map{|user|[user.id,user]}.to_h如果您使用的是Rails,ActiveSupport会提供Enumerable#index_by:users_by_id=User.all

ruby-on-rails - 将 Rails 中的主键更改为字符串

所以我有两个模型,State和Acquisition。状态has_many收购。我觉得51条记录的自动递增整数主键相当愚蠢。所以我将州的模型更改为PK(州是两个字母的缩写;我没有在任何地方存储实际的州名称:classState问题是当我创建采集模型时,它将外键列state_id创建为一个整数。更具体地说,脚本/生成的迁移做了:classCreateAcquisitions我假设t.references数据类型将其设置为int。问题是我的Acquisition类上的创建方法试图将状态缩写放入表acquisitions的state_id字段中(是的,它在数据库上称为state_id,即使它

ruby - ruby 1.9 中有没有办法从字符串中删除无效的字节序列?

假设你有一个像"€foo\xA0"这样的字符串,编码为UTF-8,有没有办法从这个字符串中删除无效的字节序列?(所以你得到"€foo")在ruby​​-1.8中,您可以使用Iconv.iconv('UTF-8//IGNORE','UTF-8',"€foo\xA0")但现在已弃用。"€foo\xA0".encode('UTF-8')不执行任何操作,因为它已经是UTF-8。我试过:"€foo\xA0".force_encoding('BINARY').encode('UTF-8',:undef=>:replace,:replace=>'')产生“foo”但这也丢失了有效的多字节字符€

ruby - 如何找到具有最大值的数组的索引

我有一个元素数组。如果我执行arr.max,我将获得最大值。但我想获取数组的索引。如何在Ruby中找到它例如a=[3,6,774,24,56,2,64,56,34]=>[3,6,774,24,56,2,64,56,34]>>a.maxa.max=>774我需要知道774的索引,即2。我如何在Ruby中执行此操作? 最佳答案 a.index(a.max)shouldgiveyouwantyouwant 关于ruby-如何找到具有最大值的数组的索引,我们在StackOverflow上找到一个

ruby - 如何更改数组元素的位置?

我有一个关于如何更改数组元素的索引的问题,这样它就不会出现在第7个位置,而是出现在第2个位置...是否有处理此问题的函数? 最佳答案 没有比这更简单的了:array.insert(2,array.delete_at(7)) 关于ruby-如何更改数组元素的位置?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4733925/

ruby - 从 Ruby 字符串中删除除字母和数字以外的所有字符

我在表单中有一个字符串输入字段。我在paramshash中得到了那个值。我应该如何从该字符串中删除除字母和数字之外的所有字符。 最佳答案 只是为了提醒人们好的'oltr:asdf.tr('^A-Za-z0-9','')找到字符范围的补码并将字符转换为''。我很好奇使用\W字符类是否比范围和gsub与tr更快:require'benchmark'asdf=[('A'..'z').to_a,('0'..'9').to_a].joinputsasdfputsasdf.tr('^A-Za-z0-9','')putsasdf.gsub(/[\